﻿/**
 * 覆盖module.js中同名变量
 * @type String
 */
module.fromId = 'rfrom';
module.dialogId = 'rdialog';
module.datagrid = 'rolegrid';
module.rootUrl = 'role/';
module.treeId = 'grouptree';
// 新增的属性,权限树id
module.authorityTreeId = 'authoritytree';
// 新增属性,tabsid
module.tabsId = 'tabsId';
// 新属性,权限变更状态.记录是否变更过角色权限
module.isChangePermission = false;

/**
 * 装载表单数据
 * 
 * 覆盖module.js中同名方法
 * 
 * @param data
 *            装载的数据
 */
module.loadForm = function (data) {
	$('#' + module.fromId).form('load', {
		id : data.id,
		RParentId:data.parentId,
		RName : data.r_name,
		RRemarks : data.r_remarks
	});
	// 选中当前角色的所有权限
	var node = null;
	var tree = $('#authoritytree').combotree('tree');	// 获取树对象
	var nodeIds = data.aid ? String(data.aid).split(',') : '';
	for (var index = 0; index < nodeIds.length; index++) {
		node = tree.tree('find', nodeIds[index]);
		tree.tree('check', node.target);
	}
	// 重置权限变更状态
	module.isChangePermission = false;
};
 
/**
 * 打开信息编辑框
 * 
 * 覆盖module.js中同名方法
 */
module.openDialog = function () {
	// 取消选择所有已选择的权限
	var tree = $('#' + module.authorityTreeId);
	var nodes = tree.tree('getChecked');
	for (var index = 0; index < nodes.length; index++) {
		tree.tree('uncheck', nodes[index].target);
	}
	// 清空表单
	$('#' + module.fromId).form('clear');
	$('#' + module.dialogId).dialog('open');
	// 选择角色信息编辑叶签
	$('#' + module.tabsId).tabs('select', 0);
	
	// 每次重新打开dialog重置变更状态
	module.isChangePermission = false;
};

/**
 * 表单提交
 * 
 * 覆盖module.js中同名方法
 */
module.edit = function () {
	var isValid = $('#' + module.fromId).form('validate');
	if (isValid){
		var data = $('#' + module.fromId).serialize();
		
		if (module.isChangePermission) {// 判断是否修改过权限,如果修改了才发送到后台进修权限操作
			var nodes = $('#' + module.authorityTreeId).tree('getChecked');
			for (var index = 0; index < nodes.length; index++) {
				data += '&Aid=' + nodes[index].id;
			}
		}
		Common.Util.ajax(module.rootUrl + module.modifyUrl, data, function (msg) {
				module.reloadDatagrid();
				module.reloadTree();
				module.closeDialog();
			}
		);
	}
};

/**
 * 数据查询
 * 
 * 覆盖module.js中同名方法
 */
module.queryDatagrid = function () {
	var rolename = $('#rolename').textbox('getValue');
	var filters = [];
	
	// 判断查询参数是否为空
	if (!Common.Util.isEmpty(rolename)) {
		filters.push(add_condition("and", "包含", "", "r_name", rolename, "", "string"));
	}
	
	// 执行查询
	fun_query(module.datagrid, filters);
	filters = null;
};

module.onSelectTree = function (node) {
	// 判断是否为根节点
	if (!node.id || node.id == -1) {
		// 如果角色Id为空或者为-1则刷新列表
		module.reloadDatagrid();
	} else {
		// getAllChildNodeId函数在tree.js
//		var ids = getAllChildNodeId(this, node);
		var filters = [];
//		// 判断是否为叶子节点,如果是叶子节点则没有子节点
//		if ($(this).tree('isLeaf', node.target)) {
//			filters.push(add_condition("and", "等于", "role", "id", ids.join(), "", "number"));
//		} else {
//			filters.push(add_condition("and", "in", "role", "id", ids.join(), "", "string"));
//		}
		filters.push(add_condition("and", "", "", "(", "", "", ""));
		filters.push(add_condition("and", "等于", "role", "id", node.id, "", "number"));
		filters.push(add_condition("or", "等于", "role", "r_parent_id", node.id, "", "number"));
		filters.push(add_condition("and", "", "", ")", "", "", ""));
		fun_query(module.datagrid, filters);
	}
};

function formatterStatus(value, row, index){
	return value==1 ?"<img src=\"res/img/ok.png\"/>":"<img src=\"res/img/cross.png\"/>";
}
function roleRefUser(){
	var rows =$('#rolegrid').datagrid('getSelections');
	if(rows.length==0){
		$.messager.alert('警告','请选择要操作的角色','warning');
	}else if(rows.length==1){
		$("#role_ref_user").dialog('open');
		document.getElementById("if_refusers").contentWindow.loadBindUser(rows[0].id);
	}else{
		$.messager.alert('警告','一次只能同时操作一个角色','warning');
	}
	
}

